package com.it.product.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.it.product.domain.SkuStock;
import com.spzx.product.api.domain.SkuLockVo;
import org.apache.ibatis.annotations.Param;

/**
 * 商品skuMapper接口
 */
public interface SkuStockMapper extends BaseMapper<SkuStock> {
    /**
     * 查看数据库中是否存在库存不足的商品
     * @param skuId
     * @param skuNum 要锁定的库存
     * @return
     */
    SkuLockVo clear(@Param("skuId") Long skuId, @Param("skuNum") Integer skuNum);

    /**
     * 加锁
     * @param skuId
     * @param skuNum 要锁定的库存
     * @return
     */
    int lock(@Param("skuId") Long skuId, @Param("skuNum") Integer skuNum);

    /**
     * 解锁
     * @param skuId
     * @param skuNum
     * @return
     */
    int unlock(@Param("skuId") Long skuId, @Param("skuNum") Integer skuNum);

    /**
     * 减库存
     * @param skuId
     * @param skuNum
     * @return
     */
    int minus(@Param("skuId") Long skuId, @Param("skuNum") Integer skuNum);
}